# Update existing application data

Updates an existing data entry for the application. The user must have manage permissions for the data owner (user/group). The ownership cannot be changed during update - the new ownerId must match the existing one. Updates the data content, type, and tags while preserving ownership.

Endpoint: PUT /api/v1/apps/{appId}/data/{id}
Version: 1.0
Security: header

## Path parameters:

  - `appId` (string, required)
    Application ID that owns this data. Must match the data's application.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `id` (string, required)
    Data entry ID to update. Must be a valid APP_DATA type TypeId.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

## Request fields (application/json):

  - `ownerId` (string, required)
    Owner identifier of the data. Can be a user ID, group ID, user-in-group format userId:groupId, or 'platform'
    Example: "usr_01hq8c8em5hj1vr2f4h1t9db9q"

  - `type` (string, required)
    Type identifier for categorizing the data
    Example: "user_profile"

  - `tags` (array,null)
    Optional list of tags for additional categorization
    Example: ["personal","profile"]

  - `data` (string, required)
    JSON string containing the actual data payload
    Example: "{\"name\": \"John Doe\", \"bio\": \"Developer\"}"

## Response 200 fields (application/json):

  - `id` (string, required)
    Unique identifier for the app data
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `applicationId` (string,null)
    Optional application ID that this data belongs to
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `ownerId` (string, required)
    Owner identifier of the data. Can be a user ID, group ID, user-in-group format userId:groupId, or 'platform'
    Example: "us_01hq8c8em5hj1vr2f4h1t9db9q"

  - `type` (string, required)
    Type identifier for categorizing the data
    Example: "user_profile"

  - `tags` (array,null)
    Optional list of tags for additional categorization
    Example: ["personal","profile"]

  - `data` (string, required)
    JSON string containing the actual data payload
    Example: "{\"name\": \"John Doe\", \"bio\": \"Developer\"}"

  - `createdAt` (string, required)
    Timestamp when the data was created
    Example: "2022-03-10T16:15:50Z"

  - `updatedAt` (string, required)
    Timestamp when the data was last updated
    Example: "2022-03-10T16:15:50Z"

## Response 400 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 401 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 403 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 404 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation


